/**
 * 通知相关类型定义
 */

/**
 * 通知类型枚举
 */
export enum NotificationType {
  /** 系统通知 */
  SYSTEM = 'system',
  /** 任务通知 */
  TASK = 'task',
  /** 消息通知 */
  MESSAGE = 'message',
  /** 待办事项 */
  TODO = 'todo'
}

/**
 * 通知级别枚举
 */
export enum NotificationLevel {
  /** 普通 */
  NORMAL = 'normal',
  /** 重要 */
  IMPORTANT = 'important',
  /** 紧急 */
  URGENT = 'urgent'
}

/**
 * 通知状态枚举
 */
export enum NotificationStatus {
  /** 未读 */
  UNREAD = 'unread',
  /** 已读 */
  READ = 'read'
}

/**
 * 通知查询参数
 */
export interface NotificationQuery {
  /** 标题关键词 */
  title?: string
  /** 通知类型 */
  type?: NotificationType
  /** 通知级别 */
  level?: NotificationLevel
  /** 通知状态 */
  status?: NotificationStatus
  /** 日期范围 */
  dateRange?: string[]
  /** 页码 */
  page: number
  /** 每页条数 */
  pageSize: number
}

/**
 * 通知信息
 */
export interface Notification {
  /** 通知ID */
  id: string
  /** 通知标题 */
  title: string
  /** 通知内容 */
  content: string
  /** 通知类型 */
  type: NotificationType
  /** 通知级别 */
  level: NotificationLevel
  /** 通知状态 */
  status: NotificationStatus
  /** 目标用户ID */
  targetUserId: string
  /** 发送者ID */
  senderId: string
  /** 发送者名称 */
  senderName: string
  /** 创建时间 */
  createTime: string
  /** 阅读时间 */
  readTime?: string
  /** 相关链接 */
  link?: string
  /** 额外数据 */
  extraData?: string
}

/**
 * 创建通知参数
 */
export interface CreateNotification {
  /** 通知标题 */
  title: string
  /** 通知内容 */
  content: string
  /** 通知类型 */
  type: NotificationType
  /** 通知级别 */
  level: NotificationLevel
  /** 目标用户ID */
  targetUserId: string
  /** 相关链接 */
  link?: string
  /** 额外数据 */
  extraData?: string
}

/**
 * 通知统计数据
 */
export interface NotificationStats {
  /** 未读通知总数 */
  unread: number
  /** 未读系统通知数 */
  systemUnread: number
  /** 未读任务通知数 */
  taskUnread: number
  /** 未读消息通知数 */
  messageUnread: number
}

/**
 * 通知列表响应
 */
export interface NotificationList {
  /** 通知列表 */
  list: Notification[]
  /** 总数 */
  total: number
} 